﻿<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="http://schemas.datacontract.org/2004/07/RandomGraph.Common.Model" elementFormDefault="qualified" targetNamespace="http://schemas.datacontract.org/2004/07/RandomGraph.Common.Model" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:import namespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
  <xs:import namespace="http://schemas.microsoft.com/2003/10/Serialization/" />
  <xs:import namespace="http://schemas.datacontract.org/2004/07/RandomGraph.Common.Model.Status" />
  <xs:import namespace="http://schemas.datacontract.org/2004/07/RandomGraph.Common.Model.Generation" />
  <xs:import namespace="http://schemas.datacontract.org/2004/07/RandomGraph.Common.Model.Result" />
  <xs:complexType name="AbstractGraphFactory">
    <xs:sequence>
      <xs:element minOccurs="0" name="AnalizeOptions" type="tns:AnalyseOptions" />
      <xs:element xmlns:q1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="GenerationParamValues" nillable="true" type="q1:ArrayOfKeyValueOfGenerationParamanyTypeDM68FCHJ" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="AbstractGraphFactory" nillable="true" type="tns:AbstractGraphFactory" />
  <xs:simpleType name="AnalyseOptions">
    <xs:list>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="None">
            <xs:annotation>
              <xs:appinfo>
                <EnumerationValue xmlns="http://schemas.microsoft.com/2003/10/Serialization/">0</EnumerationValue>
              </xs:appinfo>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="DegreeDistribution">
            <xs:annotation>
              <xs:appinfo>
                <EnumerationValue xmlns="http://schemas.microsoft.com/2003/10/Serialization/">1</EnumerationValue>
              </xs:appinfo>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="AveragePath">
            <xs:annotation>
              <xs:appinfo>
                <EnumerationValue xmlns="http://schemas.microsoft.com/2003/10/Serialization/">2</EnumerationValue>
              </xs:appinfo>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="ClusteringCoefficient">
            <xs:annotation>
              <xs:appinfo>
                <EnumerationValue xmlns="http://schemas.microsoft.com/2003/10/Serialization/">4</EnumerationValue>
              </xs:appinfo>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="EigenValue">
            <xs:annotation>
              <xs:appinfo>
                <EnumerationValue xmlns="http://schemas.microsoft.com/2003/10/Serialization/">8</EnumerationValue>
              </xs:appinfo>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="Cycles3">
            <xs:annotation>
              <xs:appinfo>
                <EnumerationValue xmlns="http://schemas.microsoft.com/2003/10/Serialization/">16</EnumerationValue>
              </xs:appinfo>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="CycleEigen3">
            <xs:annotation>
              <xs:appinfo>
                <EnumerationValue xmlns="http://schemas.microsoft.com/2003/10/Serialization/">128</EnumerationValue>
              </xs:appinfo>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="Cycles4">
            <xs:annotation>
              <xs:appinfo>
                <EnumerationValue xmlns="http://schemas.microsoft.com/2003/10/Serialization/">256</EnumerationValue>
              </xs:appinfo>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="CycleEigen4">
            <xs:annotation>
              <xs:appinfo>
                <EnumerationValue xmlns="http://schemas.microsoft.com/2003/10/Serialization/">512</EnumerationValue>
              </xs:appinfo>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="Diameter">
            <xs:annotation>
              <xs:appinfo>
                <EnumerationValue xmlns="http://schemas.microsoft.com/2003/10/Serialization/">32</EnumerationValue>
              </xs:appinfo>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="FullSubGraph">
            <xs:annotation>
              <xs:appinfo>
                <EnumerationValue xmlns="http://schemas.microsoft.com/2003/10/Serialization/">64</EnumerationValue>
              </xs:appinfo>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="Motif">
            <xs:annotation>
              <xs:appinfo>
                <EnumerationValue xmlns="http://schemas.microsoft.com/2003/10/Serialization/">1024</EnumerationValue>
              </xs:appinfo>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:list>
  </xs:simpleType>
  <xs:element name="AnalyseOptions" nillable="true" type="tns:AnalyseOptions" />
  <xs:complexType name="AbstractGraphModel">
    <xs:sequence>
      <xs:element minOccurs="0" name="AnalizeOptions" type="tns:AnalyseOptions" />
      <xs:element minOccurs="0" name="AvailableOptions" type="tns:AnalyseOptions" />
      <xs:element xmlns:q2="http://schemas.datacontract.org/2004/07/RandomGraph.Common.Model.Status" minOccurs="0" name="CurrentStatus" nillable="true" type="q2:GraphProgressStatus" />
      <xs:element xmlns:q3="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="GenerationParamValues" nillable="true" type="q3:ArrayOfKeyValueOfGenerationParamanyTypeDM68FCHJ" />
      <xs:element xmlns:q4="http://schemas.datacontract.org/2004/07/RandomGraph.Common.Model.Generation" minOccurs="0" name="GenerationRule" type="q4:GenerationRule" />
      <xs:element minOccurs="0" name="Graph" nillable="true" type="xs:anyType" />
      <xs:element minOccurs="0" name="ID" type="xs:int" />
      <xs:element minOccurs="0" name="ModelName" nillable="true" type="xs:string" />
      <xs:element xmlns:q5="http://schemas.datacontract.org/2004/07/RandomGraph.Common.Model.Generation" minOccurs="0" name="RequiredGenerationParams" nillable="true" type="q5:ArrayOfGenerationParam" />
      <xs:element xmlns:q6="http://schemas.datacontract.org/2004/07/RandomGraph.Common.Model.Result" minOccurs="0" name="Result" nillable="true" type="q6:AnalizeResult" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="AbstractGraphModel" nillable="true" type="tns:AbstractGraphModel" />
</xs:schema>